package cuiyt.offer;

import java.util.HashMap;
import java.util.LinkedHashMap;

/**
 * @author cyt
 * @create 2020-08-19 14:54
 */
public class JZ54 {

    /**
     * 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如，当从字符流中只读出前两个字符"go"时，
     * 第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时，第一个只出现一次的字符是"l"。
     *
     * 需要保证输入是有序的， 所以采用  LinkedHashMap 而不是 hashMap
     */
    HashMap<Character, Integer> map = new LinkedHashMap<>();
    public void Insert(char ch) {
        if (map.containsKey(ch)) {
            map.put(ch, -1);
        } else {
            map.put(ch, 1);
        }
    }
    public char FirstAppearingOnce() {
        for (char character : map.keySet()) {
            if(map.get(character) ==1 ){
                return  character;
            }
        }
        return '#';
    }
}
